package com.ssy.lingxi.product.api.model.request.warehouse;

import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
* 单据添加请求实体
* @author wrc
* @date 2020/7/7
*/
@Data
public class InvoicesAddFeignRequest {
    /**
    * 单据号
    */
    private String invoicesNo;


    /**
     * 单据类型编号
     */
    private String invoicesTypeCode;

    /**
    * 单据类型ID
    */
    private Long invoicesTypeId;


    /**
     * 单据摘要
     */
    @NotEmpty(message = "单据摘要不能为空")
    private String invoicesAbstract;


    /**
     * 对应仓库ID
     */
    @NotNull(message = "对应仓库ID不能为空")
    private Long inventoryId;



    /**
     * 对应仓库人员
     */
  //  @NotEmpty(message = "对应仓库人员不能为空")
    private String inventoryRole;


    /**
     * 交易时间
     */
  //  @NotNull(message = "交易时间不能为空")
    private Long transactionTime;



    /**
     * 订单号
     */
    private String orderNo;


    /**
     * 单据状态：1.未审核 2.已审核
     */
    private Integer state;


    /**
    * 单据明细
    */
    @Valid
    @NotEmpty(message = "单据明细不能为空")
    private List<InvoicesDetailsRequest> invoicesDetailsRequests;


    /**
     * 关联单据编号
     */
    //@NotEmpty(message = "关联单据编号不能为空")
    private String relevanceInvoicesNo;


    /**
     * 关联单据ID
     */
    //@NotNull(message = "关联单据ID不能为空")
    private Long relevanceInvoicesId;

    /**
     * 对应单据:1.订单 2.换货申请单 3.退货申请单 4.生产通知单 5.内部单据
     */
    //@NotNull(message = "对应单据不能为空")
    private Integer relevanceInvoices;



    /**
     * 交付地址ID
     */
    //@NotNull(message = "交付地址ID不能为空")
    private Long deliveryAddresId;

    /**
     * 交付地址收货人名字
     */
    private String receiverName;


    /**
     * 交付地址收是否默认0.否 1.是
     */
    private Integer isDefault;

    /**
     * 交付地址详情
     */
    private String fullAddress;

    /**
     * 交付地址 联系电话
     */
    private String phone;

    /**
     * 提货方式:1.物流 2.自提 3.无需配送
     */
    private Integer deliveryType;


    /**
    * 单据类型名字
    */
    private String invoicesType;


    /**
     * 创建单据会员角色ID
     */
    private Long createRoleId;


    /**
     * 创建单据会员Id
     */
    private Long createMemberId;


    /**
     * 创建单据会员名字
     */
    private String createMemberName;


    /**
     * 会员名字
     */
    private String supplyMembersName;

    /**
     * 会员Id
     */
    private Long supplyMembersId;

    /**
     * 会员Id
     */
    private Long supplyMembersRoleId;



    /**
     *请求来源： 1.进销存 2.单据
     */
    @NotNull(message = "请求来源不能为空")
    private Integer source;
}
